package com.winchain.chainbill.bill.biz.query.dao;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.winchain.chainbill.bill.biz.query.vo.CbRecQueryVo;
import com.winchain.chainbill.bill.biz.query.vo.CbRecVo;
import com.winchain.chainbill.home.vo.BillIncomeSpendParamVo;
import com.winchain.chainbill.home.vo.BillIncomeTotalVo;
import com.winchain.chainbill.home.vo.BillSpendTotalVo;
import com.winchain.chainbill.home.vo.DailyTxCountResultVo;
import com.winchain.chainbill.home.vo.TxCountParamVo;

public abstract interface CbRecQueryDao {
	public abstract List<CbRecVo> selectBillForSnd(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForSndStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForSnd(@Param("billId") String paramString1,
			@Param("bizId") String paramString2);

	public abstract List<CbRecVo> selectBillForXfe(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForXfeStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForXfe(@Param("billId") String paramString1,
			@Param("bizId") String paramString2);

	public abstract List<CbRecVo> selectBillForDct(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForDctStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForDct(@Param("billId") String paramString1,
			@Param("bizId") String paramString2);

	public abstract List<CbRecVo> selectBillForRcv(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForRcvStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForRcv(@Param("billId") String paramString1,
			@Param("bizId") String paramString2);

	public abstract List<CbRecVo> selectBillForAll(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForAllStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForAll(String paramString);

	public abstract List<CbRecVo> selectBillForRpur(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForRpurStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract CbRecVo selectBillDetailForRpur(@Param("billId") String paramString1,
			@Param("bizId") String paramString2);

	public abstract List<CbRecVo> selectBillForFinished(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForFinishedStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract List<CbRecVo> selectBillForDfrl(CbRecQueryVo paramCbRecQueryVo);

	public abstract Map<String, Object> selectBillForDfrlStats(CbRecQueryVo paramCbRecQueryVo);

	public abstract BigDecimal getPayTotal(String paramString);

	public abstract BigDecimal getIncomeTotal(String paramString);

	public abstract BigDecimal getHoldBillTotal(String paramString);

	public abstract BigDecimal getHoldBillTotalForFin(String paramString);

	public abstract BigDecimal getDctPendPmtBillTotal(String paramString);

	public abstract BigDecimal getDctBillTotal(String paramString);

	public abstract BigDecimal getTxTotal(String paramString);

	public abstract BigDecimal queryBillIncomeTotal(BillIncomeSpendParamVo paramBillIncomeSpendParamVo);

	public abstract BigDecimal queryBillSpendTotal(BillIncomeSpendParamVo paramBillIncomeSpendParamVo);

	public abstract List<BillIncomeTotalVo> queryBillIncomeTotalList(
			BillIncomeSpendParamVo paramBillIncomeSpendParamVo);

	public abstract List<BillSpendTotalVo> queryBillSpendTotalList(BillIncomeSpendParamVo paramBillIncomeSpendParamVo);

	public abstract List<DailyTxCountResultVo> queryDailySendTxInfos(TxCountParamVo paramTxCountParamVo);

	public abstract List<DailyTxCountResultVo> queryDailyXfeTxInfos(TxCountParamVo paramTxCountParamVo);

	public abstract List<DailyTxCountResultVo> queryDailyDctTxInfos(TxCountParamVo paramTxCountParamVo);

	public abstract List<DailyTxCountResultVo> queryDailyRpurTxInfos(TxCountParamVo paramTxCountParamVo);

	public abstract List<CbRecVo> selectBillDetailForCert(@Param("billIds") String[] paramArrayOfString);
}
